home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1990: Discy Business / Discy Business.2mg / DEV.CD / TOOLS / TECH.NOTES / IIGS / TN.IIGS.025 < prev    next >
Encoding:
Text File  |  1990-04-29  |  15.0 KB  |  346 lines  |  [04] ASCII Text (0x0000)

  1. Apple II
  2. Technical Notes
  3. _____________________________________________________________________________
  4.                                                   Developer Technical Support
  5.  
  6.  
  7. Apple IIgs
  8. #25:    Apple IIgs Firmware Reference Updates
  9.  
  10. Revised by:    Jim Luther                                            May 1990
  11. Written by:    Rilla Reynolds, Jim Luther & Dave Lyons           October 1987
  12.  
  13. This Technical Note includes updates to the May 1987 edition of the Apple IIgs 
  14. Firmware Reference, published by Addison-Wesley (Part Number 030-3121-A).  The 
  15. new Monitor commands require an Apple IIgs revised ROM (Part Number 342-0077-
  16. B), which is available without charge from an authorized Apple dealer.  Please 
  17. contact Apple II Developer Technical Support at the address listed in Apple II 
  18. Technical Note #0 if you have additional corrections or suggestions for this 
  19. manual.
  20. Changes since January 1990:  Corrected Table 4-4 on page 77 and added a 
  21. reference to the Apple IIgs Firmware Reference 1MB Apple IIgs Update.
  22. _____________________________________________________________________________
  23.  
  24.  
  25. Contents
  26.  
  27.     Page vii, Chapter 7  SmartPort Firmware:  Change "Generic SmartPort 
  28.     calls   121" to "Standard and Extended SmartPort calls   121."
  29.  
  30.  
  31. Chapter 3:  System Monitor Firmware
  32.  
  33.     Page 24, Table 3-1 (continued), Monitor commands grouped by 
  34.     type:  Add a miscellaneous-type and a debugging-type Monitor command to 
  35.     the table, as follows:
  36.  
  37.     Command type                                               Command format
  38.     ...
  39.     Quit Monitor                                               Q
  40.     Install Visit Monitor and MemoryPeeker desk accessories    #
  41.     ...
  42.     Enter mini-assembler                                       !
  43.     Set flags (e, m, x) for full-native mode                   Control-N
  44.  
  45.     Page 43, Back to BASIC:  The last paragraph should read:  "If you are 
  46.     using DOS 3.3 or ProDOS(R), use the Monitor Q (Quit) command to return to 
  47.     the language you were using with your program and variables intact."
  48.  
  49.     Page 48, Table 3-6, Commands for program execution and 
  50.     debugging:  Add a Monitor command to the table:
  51.  
  52.     Command type                                               Command format
  53.     ...
  54.     Enter mini-assembler                                       !
  55.     Set flags (e, m, x) for full-native mode                   Control-N
  56.  
  57.     Page 66, after final paragraph:  Add a new Monitor instruction heading 
  58.     and description:
  59.  
  60.     Native Mode Set Control-N (Native Mode)
  61.  
  62.     Control-N sets the m, x, e flags to 0 for full-native mode.  All 
  63.     other registers are unchanged.
  64.  
  65.     Page 67, after final paragraph:  Add a new Monitor instruction heading 
  66.     and description:
  67.  
  68.     Turn on ROM Desk Accessories, #
  69.  
  70.     Enables the currently available ROM desk accessories, Visit Monitor 
  71.     and Memory Peeker.  These desk accessories remain active in the desk 
  72.     accessory menu until power is shut off.  Control-Open Apple-Reset has 
  73.     no affect on these items.  To exit the Visit Monitor desk accessory, 
  74.     press Control-Y then press Return.  To exit the Memory Peeker desk 
  75.     accessory, press Q.
  76.  
  77.  
  78. Chapter 4:  Video Firmware
  79.  
  80.     Page 77, Table 4-4, Control characters with 80-column firmware on:  Change 
  81.     the actions taken by Control-E and Control-F to read (they were reversed):
  82.  
  83.  
  84.     Control character    Action taken by C3COUT1
  85.     Control-E            Turns cursor on
  86.     Control-F            Turns cursor off
  87.  
  88.  
  89. Chapter 5:  Serial-Port Firmware
  90.  
  91.     Page 82, Compatibility:  The second half of the third sentence in the 
  92.     first paragraph should read:  "...the Apple IIGS hardware is different from 
  93.     that used on the SSC."
  94.  
  95.     Page 91, Input buffering, BE and BD:  This heading should be 
  96.     "Input/Output buffering, BE and BD."
  97.  
  98.     Page 94, Table 5-6:  The Extended Interface footnote which states, "If the
  99.     function call returns with the carry bit set..." is incorrect.  For Apple
  100.     IIGS ROM 01, the Extended Serial Interface does not return the error
  101.     condition in the carry bit.  Programs using the Extended Serial Interface
  102.     should check for a non-zero result value in the result code rather than the
  103.     carry bit to determine if an error has occurred.  For additional error
  104.     handling information using the Extended Interface, see Apple IIGS Technical
  105.     Note #50, Extended Serial Interface Error Handling.
  106.  
  107.     Page 95, Error handling:  The second sentence should read:  "If the 
  108.     character has a framing or parity error (assuming that the parity option is 
  109.     not set to None), the character is deleted from the input stream and the 
  110.     appropriate mode bit is set."
  111.  
  112.     Page 96, Note:  The Note should read:  "The InQStatus elapsed-time 
  113.     counter functions correctly only if a heartbeat interrupt task has been 
  114.     started.  A heartbeat interrupt task is a set of functions called by 
  115.     interrupt code that run automatically at one-thirtieth of a second 
  116.     intervals.
  117.  
  118.     Page 96, Interrupt notification:  The fourth sentence in the first 
  119.     paragraph should be:  "The system interrupt handler will transfer control 
  120.     to the user's interrupt vector at $03FE in bank $00."
  121.  
  122.     Page 97, Interrupt notification:  The last three paragraphs should be 
  123.     replaced with this paragraph:  "The interrupt completion routine executes 
  124.     as part of the firmware interrupt handler and must be run in that 
  125.     environment.  The interrupt completion routine must preserve the DBR, 
  126.     speed, 8-bit native mode, D register, stack pointer (or just use the 
  127.     current stack), and MSLOT for proper operation. A/X/Y need not be 
  128.     preserved."
  129.  
  130.     Page 100, SetModeBits:  The first sentence in the paragraph following 
  131.     the CMDLIST should read:  "Use this call to alter any of the mode bits 
  132.     whose function is described below."
  133.  
  134.     Page 105, GetIntInfo:  The command list should read:
  135.  
  136.     CMDLIST DFB $03                   ;Parameter count
  137.             DFB $0C                   ;Command code
  138.             DW  $00                   ;result code (output)
  139.             DW  $00                   ;interrupt setting (output)
  140.             DL  Completion address    ;(output)
  141.  
  142.     The following should be added after the command list, "Note:  The
  143.     Parameter count of $03 is correct even though there are four parameters."
  144.  
  145.     The following should be added after the last paragraph:  "Note:  Before 
  146.     making this call from an interrupt completion routine, you must set the 
  147.     operating environment to look and act exactly like a 6502 in all respects.  
  148.     During interrupt completion routines, you must preserve the DBR, speed, 8-
  149.     bit native mode, D register, stack pointer (or just use the current stack), 
  150.     and MSLOT for proper operation.  A/X/Y need not be preserved.  See 
  151.     "Environments for the Firmware Routines" in chapter 2, Notes for 
  152.     Programmers for details about setting and restoring the operating 
  153.     environment.
  154.  
  155.     Page 106, SetIntInfo:  The command list should read:
  156.  
  157.     CMDLIST DFB $03                   ;Parameter count
  158.             DFB $0D                   ;Command code
  159.             DW  $00                   ;result code (output)
  160.             DW  Interrupt setting     ;(input)
  161.             DL  Completion address    ;(input)
  162.  
  163.     The following should be added after the command list, "Note:  The
  164.     Parameter count of $03 is correct even though there are four parameters."
  165.  
  166.  
  167. Chapter 7:  SmartPort Firmware
  168.  
  169.     Page 120, Issuing a call to SmartPort:  The standard and extended 
  170.     SmartPort call examples should be:
  171.  
  172.     This is an example of a standard SmartPort call:
  173.  
  174.     SP_CALL    JSR  DISPATCH           ;Call SmartPort command dispatcher
  175.                DC   i1'CMDNUM'         ;This specifies the command type
  176.                DC   i2'CMDLIST'        ;Word ptr to param list in bank $00
  177.                BCS  ERROR              ;Carry is set on an error
  178.  
  179.     This is an example of an extended SmartPort call:
  180.  
  181.     SP_EXT_CALL  JSR  DISPATCH         ;Call SmartPort command dispatcher
  182.                  DC   i1'CMDNUM+$40'   ;This specifies the ext cmd type
  183.                  DC   i4'CMDLIST'      ;Pointer to the parameter list
  184.                  BCS  ERROR            ;Carry is set on an error
  185.  
  186.     Page 121, Generic SmartPort calls:  Change occurrences of "Generic 
  187.     SmartPort Calls" to "Standard and Extended SmartPort Calls" in the header 
  188.     and the first sentence.  Refer to SmartPort Technical Note #2, SmartPort 
  189.     Calls Updated, for updated information on the SmartPort STATUS call.
  190.  
  191.     Page 122, Statcode = $00:  Change the function of bit 0 of the first 
  192.     device status byte to:  "1 = Device currently open (character devices only) 
  193.     or disk switched (block device only)."
  194.  
  195.     Page 124:  SmartPort device types should be same as those documented in 
  196.     Apple II SmartPort Technical Note #4, SmartPort Device Types.
  197.  
  198.     Page 125, SmartPort driver status:  See SmartPort Technical Note #2, 
  199.     SmartPort Calls Updated, for the correct format of the status list for unit 
  200.     0, status code 0.
  201.  
  202.     Vendors must request a Vendor ID Assignment from Developer Technical 
  203.     Support before using a specific value in bytes two and three.
  204.  
  205.     Page 125, Possible errors:  Add the following:
  206.        $1F    No interrupt.  Interrupts not supported.
  207.        $2B    No write.  Disk write-protected.
  208.        $2F    Offline.  Disk off-line or no disk in drive.
  209.  
  210.     Page 126, ReadBlock:  Add a sentence at the end of the first paragraph 
  211.     which reads, "On return, the X and Y registers indicate the number of bytes 
  212.     transferred."
  213.  
  214.     Page 131, Open:  The following changes apply for the CMDNUM:
  215.  
  216.                     Standard call    Extended call
  217.         CMDNUM          $06              $46
  218.  
  219.     Page 132, Read:  Add a sentence at the end of the first paragraph which 
  220.     reads, "On return, the X and Y registers indicate the number of bytes 
  221.     transferred."
  222.  
  223.     Page 140, Figure 7-8, Disk-sector format:  Change to the following:
  224.  
  225.     _____________________________________________________________________
  226.     |13      |F|D|A|9|T|S|S|F|A|D|A|F|1       |F|D|A|A|S|699     |4|D|A|F|
  227.     |5-Nibble|F|5|A|6|r|e|i|o|d|E|A|F|5-Nibble|F|5|A|D|e|GCR     | |E|A|F|
  228.     |SelfSync| | | | |a|c|d|r|r| | | |SelfSync| | | | |c|Nibbles |C| | | |
  229.     |Fields  | | | | |c|t|e|m|s| | | |Fields  | | | | |t|Fields  |h| | | |
  230.     |        | | | | |k|o| |a|L| | | |        | | | | |o|        |e| | | |
  231.     |        | | | | | |r| |t|R| | | |        | | | | |r|        |c| | | |
  232.     |        | | | | | | | | |C| | | |        | | | | | |        |k| | | |
  233.     |        | | | | | | | | | | | | |        | | | | | |        |s| | | |
  234.     |        | | | | | | | | | | | | |        | | | | | |        |u| | | |
  235.     |        | | | | | | | | | | | | |        | | | | | |        |m| | | |
  236.     _____________________________________________________________________
  237.     A SelfSync Field is four 20 microsecond selfsync nibbles written as
  238.     a sequence of five 16 microsecond nibbles.
  239.  
  240.     Page 140, ResetHook:  The Control code and Control list should be:
  241.  
  242.     Control Code    Control list
  243.           $06       Count low byte                $04
  244.                     Count high byte               $00
  245.                     Hook reference number         $xx, $00, $00, $00
  246.  
  247.     Page 141, SetInterleave:  The Control code and Control list should be:
  248.  
  249.     Control Code    Control list
  250.           $0A       Count low byte                $01
  251.                     Count high byte               $00
  252.                     Interleave                    $01 to $0C
  253.  
  254.     Page 143, UniDiskStat:  The Status code and Status list should be:
  255.  
  256.     Status Code    Status list
  257.        $05         Byte                           $04
  258.                    Soft error                     $00
  259.                    Retries                        $xx
  260.                    A register after execute       $xx
  261.                    Y register after execute       $xx
  262.                    P register after execute       $xx
  263.                    Byte                           $xx
  264.  
  265.     Page 152, Passing parameters to a ROM disk:  Add a sentence to the 
  266.     end of the second paragraph which reads:  "These locations will not be 
  267.     preserved between SmartPort calls."
  268.  
  269.     Page 156, Table 7-6, SmartPort error codes:  Add the following error 
  270.     code:
  271.  
  272.     Acc value        Error type        Description
  273.       $69            IOTERM            I/O terminated due to new line
  274.  
  275.  
  276.     Page 166, Table 7-8, Standard command packet contents":
  277.     Byte 3 descriptions should read "Byte 2 of param list."
  278.     Byte 4 descriptions should read "Byte 3 of param list."
  279.     Byte 5 descriptions should read "Byte 4 of param list."
  280.     Byte 6 descriptions should read "Byte 5 of param list."
  281.     Byte 7 descriptions should read "Byte 6 of param list."
  282.     Byte 8 descriptions should read "Byte 7 of param list."
  283.     Byte 9 descriptions should read "Byte 8 of param list."
  284.  
  285.  
  286. Chapter 8:  Interrupt-Handler Firmware
  287.  
  288.     Page 184, Serial-port interrupt notification:  The last three 
  289.     paragraphs should be replaced with this paragraph:  "The interrupt 
  290.     completion routine executes as part of the firmware interrupt handler and 
  291.     must be run in that environment.  The interrupt completion routine must 
  292.     preserve the DBR, speed, 8-bit native mode, D register, stack pointer (or 
  293.     just use the current stack), and MSLOT for proper operation. A/X/Y need not 
  294.     be preserved."
  295.  
  296.  
  297. Chapter 9:  Apple DeskTop Bus Microcontroller
  298.  
  299.     Page 191, Sync, $07:  The first sentence should read: "This command 
  300.     performs the three preceding commands in sequence."
  301.  
  302.     Page 194, Receive Bytes, $48:  The fourth sentence should read:  "The 
  303.     second byte value is a combination of the device address in the high nibble 
  304.     and the ADB command in the low nibble (see the Apple IIGS Hardware 
  305.     Reference)."
  306.  
  307.  
  308. Chapter 10:  Mouse Firmware
  309.  
  310.     Page 201:  Mouse button positions should be changed as follows:
  311.  
  312.     o    X data byte
  313.          If bit 7 = 0, then mouse button 1 is down.
  314.          If bit 7 = 1, then mouse button 1 is up.
  315.  
  316.     o    Y data byte
  317.          If bit 7 = 0, then mouse button 0 is down.
  318.          If bit 7 = 1, then mouse button 0 is up.
  319.  
  320.     Page 205, Figure 10-1, Position and status information:
  321.     Bit 7 description should be:  "Currently, button 0 is up/down (0/1)."
  322.     Bit 6 description should be:  "Previously, button 0 was up/down (0/1)."
  323.  
  324.  
  325. Appendix B:  Firmware ID Bytes
  326.  
  327.     Page 223, Table B-2, Register bit information:  Change the table to 
  328.     show that Bits 7-0 of the Y register hold the ROM version number, and the X 
  329.     register is reserved.  In addition, the table description should read:  
  330.     "The Y register contains the machine ID and the ROM version number.  The X 
  331.     register is reserved."
  332.  
  333.     Page 249, COUT1:  In the third sentence, change the value of line feed 
  334.     from $8C to $8A.
  335.  
  336.     Page 277, RDALTZP:  Change the comment to read:  "Bit 7 = 1 if alt zp 
  337.     enabled."
  338.  
  339.  
  340. Further Reference:
  341. _____________________________________________________________________________
  342.   o  Apple IIgs Firmware Reference
  343.   o  Apple IIgs Firmware Reference 1MB Apple IIgs Update
  344.   o  Apple IIgs Technical Note #50, Extended Serial Interface Handling
  345.   o  SmartPort Technical Note #2, SmartPort Calls Updated
  346.